Shortcode to eliminate and replace with

You’ve got the $content available to you in your remove_p function – so inside that function just look for the existence of a special string (i.e. your “shortcode”), to allow the filter to do the str_replace. For example:

   if ( false !== strpos( $content, "[p-filter]") ) {
       $paragraphs = array("<p>","</p>","[p-filter]");
       $noparagraphs = array("","<br>","");
       return str_replace( $paragraphs, $noparagraphs, $content );
   }
   else
       return $content;

This will work as long as your client doesn’t want to turn on/off your filter multiple times within a single POST object…if he does then it could still be done, but will be more complicated to implement.