You cannot reply on OpenCV to do this because its model is trained based on face images just like the first one. That is to say, it is supposed to give face detections like the first one.
Instead, consider to crop the detected rectangles a little bit, whatever size you want it be.
To be more accurate, you can crop the faces based on the facial features, as discussed in this thread.