You are correct that the P relay getting energized is what indexes the player unit stepper.
If the bonus count and the O relay are operating 100%, then you are also correct that the only other possible switch fault for the P relay circuit is the trough switch. As MarkG said, have you checked that the trough switch is clean and adjusted correctly? As he points out, you can't use your finger on the trough wireform to determine if the ball will close the trough switch. You need to use the ball itself to test this rollover wire. If you haven't already done so, you can remove the card holder, hold the ball in the trough on top of the wireform, and check to see if the trough switch is getting properly closed.
A more rare problem with coil circuits in pingames is bad solder connections. Check the trough switch solder lugs and the P relay coil solder lugs to confirm that all the solder joints are good for all of the connecting wires.
Also, on the P relay coil, there are two thin magnet wires coming up from the coil, with one wire attached to each solder lug. Another rare problem is that once in a while, one of these magnet wires will either fracture, or its solder connection will come loose, and then you'll get random instances of the relay just not working sometimes.
One weird problem that I've seen (this one is very rare) is when the outhole kicker is firing too early in the score motor cycle when the O relay is energized. This will cause the ball to be kicked out too soon, and it will roll over the trough switch while the score motor is still running. When that happens, it will definitely prevent the P relay from getting energized. So, it's usually a good idea as a basic sanity check to confirm that the score motor is always stopped at the home position as the ball rolls over the trough switch.
All that said, the first and easiest thing to do is to clean and adjust that trough switch.
- TimMe