I don’t have Minion Pro to test this, but you can set the character active with newunicodechar, look up whether the current font contains ϱ with \iffontchar, and return the character if so, e.g.
\iffontchar\font`ϱ\symbol"03F1\else\symbol"03C1\fi
In practice, you might want to wrap this further in \ifmmode to use \varrho in math mode, e.g.
\ifmmode%
\varrho%
\else%
\iffontchar\font`ϱ%
\symbol"03F1%
\else\symbol"03C1%
\fi%
\fi
You hit on using Gentium as a fallback font, instead of ρ as a fallback glyph, which is a great idea. You might want to load the supplemental font with Scale=MatchLowercase so the letters come out the same size. Also be sure to enclose the font change in a group, so it does not bleed through to the following text.
\newfontfamily\gentium{Gentium}[Scale=MatchLowercase]
\newunicodechar{^^^^03f1}{%
\ifmmode%
\varrho%
\else%
\iffontchar\font`ϱ%
\symbol"03F1%
\else{{\gentium\symbol"03F1}}%
\fi%
\fi}
newunicodecharin this case, this is a valuable option to have. – Ingmar Nov 27 '20 at 17:23