How did you make the third param in stored proc. optional? Assign a default value? Then, do the same thing.
Or, you could put an if statement on the third cfprocparam. If the arguments.MyParam3 NEQ a default value, then include the third cfprocparam.
By the way, <cfargument name ="MyParam3" required="no"> needs a default value. Otherwise, it would throw an error.