From the comments you can see that you want to match one space between <p>and </p>. If so, you should use \s, not \s. \smatches any single space character, where \smatches any character without spaces.
You can try:
(?!^<p>\s<\/p>)(?!.*<p>\s<\/p>$)(?=.*<p>\s<\/p>)
(?!^<p>\s<\/p>) , <p>\s<\/p>.
(?!.*<p>\s<\/p>$) , <p>\s<\/p>.
(?=.*<p>\s<\/p>) , <p>\s<\/p> -.
PHP, :
$x="abc <p> </p> def";
$R="#(?!^<p>\s<\/p>)(?!.*<p>\s<\/p>$)(?=.*<p>\s<\/p>)#";
$result=preg_match($R,$x);
var_dump($result);