Just to save someone else some time.
If you want your users to be able to install both formats and decide during runtime you will need to define
JUCE_VST3_CAN_REPLACE_VST2=0
If that is not defined, multiple Juce files define it as true.
I can guess at the reason for this behaviour but consider it a trap and voodoo. IMHO a better solution would be to define this flag only if VST2 is not built, i.e. make it an explicit part of the projucer mask.