Welcome to the world of motor drivers!
It's due to the way your gate drive works. You can spend quite a bit more money making very fancy gate drive circuits that float, and when you do that your Vdd and Vgs independent of each other and you can have a Vd =100V while your Vgs =15V.
One of the only reasons to use a PMOS for an H-bridge is that it is easier to switch on and off for the high-side than an NMOS. BUT if the motor voltage gets higher than the max gate volteage, then there is no point and that is the problem you are running into. You need extra drive circuitry, and in that case, you might as well use an NMOS since they are cheaper, faster, and more efficient than PMOS and need a fancy gate drive circuit anyways. So if you use these circuits then you should just change your PMOS to NMOS. You could also probably use MOSFETs with a Vds that is closer to your battery voltage (about 2x higher than your battery voltage to be safe) since they also have better performance than a high Vds MOSFET.
It's very easy to switch a low-side transistor on and off, but doing that on the high-side can be quite difficult. Here is a link to other methods that let you turn on and off a high-side MOSFET without needing isolators or floating supplies so they are cheaper:
**broken link removed**
So if you plan to use a motor voltage above 20V (15V to be safe) then you should change your to all power NMOS with more complex high-side gate drive circuit. It will be more expensive and complicated though than your circuit right now (mainly for the high-side gate drive). You might want to then try one of the circuits I posted in the link.
======================
THis is the one I am working on right now (it's one half, there is a second identical half to it for the other side of the motor), for example. It uses floating supplies and the isolator can withstand 700V but drives the MOSFET gates with 15V, so if my MOSFETs have Vds max of 700V, my circuit can handle 700V.
It costs a lot of money though. You are probably better off using one the circuits in the link since yours is a low power, low speed circuit.
WHen it turns the top transistor off, it pulls the gate voltage it down to A, not down to ground since the voltage difference then would be much more than the MOSFET gate voltage can handle. Your circuit on the other hand just pulls the PMOS's gate voltage down to ground which is much cheaper and easier to do but it has it's limitations in that the motor voltage cannot be higher than max Vgs of the PMOS.