I agree with the fuel cap since it's a small evap. leak . Other causes for a small leak is a cracked vac. lines to and from the LDP(leak detection pump), purge solenoid valve and or canister. In some cases, either the purge solenoid valve or the LDP will have an intermittent small leak and will throw a P0456. I would recommend if the fuel cap is good, check the vac. lines first on all the mentioned component particularly where the rubber hose is slipped to the component fitting. It usually cracks where it's stretched.