You could replace the BJT (2N3904) with a small N-channel MOSFET (eg. MMBT7002) and lose the base resistor.
If you can connect the load between the +12 and MOSFET you could replace both transistors with a logic-level (!) N-channel power MOSFET.
If you continue to use the shown circuit make sure your P-channel MOSFET is rated for +12 plus whatever transients might occur on the +12V line. It would be easy to blow out the gate on that part. It can be protected in a bulletproof fashion by adding a Zener plus a resistor, or a divider, depending on how dirty your +12 is and how lucky you feel. If it's an automotive "12V", use the zener. Automotive (and similar) electrical systems should withstand brief transients that are in the +300V~-100V range (see, for example, SAE J1113).
Edit: Looking at your MOSFET, I have two comments- first the absolute maximum Vgs is +/-8V so you are already in forbidden territory where failures are likely even without transients. Secondly, that is a bitty little MOSFET with very little thermal mass and not much power dissipation ability. Your 10K resistor will cause it to switch "off" fairly slowly, and the temperature of the die will jump up by maybe a degree C or two in the 10usec or so it takes to switch, which is a bit stressful on the part. A larger MOSFET, capable of tens of amperes, might be wise.
Edit: Where the zener goes:
simulate this circuit – Schematic created using CircuitLab
The MOSFET I suggested has +/-20V Vgs so you can use a 15V zener and a 1K resistor for R2. For other types (especially if Vgs(max) is < 15V) you'll have to work the numbers out.