In NIST 800-56B publishing, this is done with the $(p, q) = RecoverPrimeFactors (n, e, d)$ function. I don't understand why is necessary if $p$ and $q$ are known during in generation. In my opinion, validation without the RecoverPrimeFactors function checks the required criteria.
I don't understand why is necessary if $p$ and $q$ are known during in generation.
Because rsakpv1-basic may be run by something that's not the key generation process; it is there to allow this second party entity to validate things.
We generally keep $p$ and $q$ in the private key (along with the other CRT parameters); 800-56B is apparently envisioning scenarios where we don't.