I found a solution!
Following the "Configure Existing MRTK3 Project" tutorial is enough. However, I had to check the "HandsSubsystem" boxes in Available MRTK Subsystems (Edit > Project Settings > MRTK3).
My app is now working as expected using hands or the controller.