This won't work as browser don't accept nested p tags anyway. Replacing all your p tags with divs would make it work, but that doesn't do it either because you are looking for any elements with the id p2 and is followed immediately by an element of the type h4. Only if you enter something as general as p + h4 you will only address every h4 preceded by a p element. Here's how to make it all work:
This is the sibling of the selected para
this should not be colored
this should be colored