If I have two GPU cards, how can I use the GPUs' constant memory properly?

Do I need to define two arrays both with constant qualifiers in global scope for each of the GPUs?

No, a constant declaration is instantiated on all GPUs that are currently visible to the process.

However, you will need to populate each one individually:

cudaSetDevice(0);
cudaMemcpyToSymbol(…);
cudaSetDevice(1);
cudaMemcpyToSymbol(…);