A couple of things I found on another site:
- Faulty O2 sensor
- Short to battery voltage in O2 sensor signal circuit
- High fuel pressure, possible high fuel pressure can over rich the system. (not as likely)
The first one is pretty much ruled out since you already replaced the sensors.
The second one, I'm kind of leary of in this instance since P0138 is 1st bank 2nd sensor and P0158 is 2nd bank 2nd sensor. I'm not 100% sure but I don't think that the sensors share a common path to the PCM, i.e. each reports independently to the PCM via its own path and it would seem unlikely, to me at least, that each path would short to battery intermitantly. One easy way to check would be to disconnect the harness from each sensor and check for power without the key on. If it is shorted to battery voltage, you should see ~12V at the connector.
The third one seems a little more likely to set intermitant codes in both sensors since an over rich condition would be seen by the entire system and could, in theory, be intermitant if the fuel system is surging for some reason.
As to why the light comes on for a few days and then goes off, the computer will clear some codes after a certain number of good run cycles so the code may be cleared one day only to be reset on the next.