Looks like the inbuilt function Split could also be used:
p={4,2,1,10,3,5,6,13,12,9,15,11,7,8,14};
Split[p,#2>#1&]
(* {{4},{2},{1,10},{3,5,6,13},{12},{9,15},{11},{7,8,14}} *)
What a fast, efficient, and elegant solution! Thanks for sharing this, Hans!