Please tell us what is the error you see? Can you check and tell the return status of the CyU3PConnectState API?
In fact, there is not error return status of the CyU3PConnectState API, that is the API works fine. But the FX3 can re-enumerate only when API set as CyU3PConnectState(CyTrue,CyFalse).
Please check the below implementation under the vendor command in the attached firmware:
status = CyU3PConnectState(CyFalse,CyFalse);
status = CyU3PConnectState(CyTrue, CyTrue);
you can check the same after you program the FX3 with the attched firmware and send a vendor command with code E1. You will notice that the device will re-enumerate on the USB. I checked and it does work at my end using Superspeed explorer kit.