Looks like the inbuilt function Split could also be used:
Split
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!