Replacing space after number with hard space in p tag

I would like to replace a space after a number with hard-space ” ” only in p tags.

I wrote this code:

   $pattern = "/<p>[0-9] </p>/";
   return preg_replace($pattern, "$1&nbsp;", $text);

But it does nothing, why? Can you please help?

Example:

Input : "My 90 days work."
Output: "My 90&nbsp;days work."

Thank you a lot.