Well, for starters, that is NOT the correct pinout for an IRF7307.
1 S1 8 D1
2 G1 7 D1
3 S2 6 D2
4 G2 5 D2
Turning on both transistors at the same time is a problem inherent to all H-bridges. There are many good solutions. Perhaps the simplest is to control the N and P with separate inputs so the controller can insert a delay between turning one off and turning the other one on.
You do need diodes to protect the transistors. When the power is switched off the inductance of the motor makes a high voltage spike if there is no diode to route the current away.