Is the key generated using the password?
Yes. In this sort of scenario, the password is run through a key derivation function (KDF) such as PBKDF2 to generate the key.
Can I actually see the secret key if I want to?
AFAIK, the symmetric key in this case is not stored anywhere. Instead, the key is derived from the password each and every time you want to encrypt or decrypt something. If you really want to obtain the key, you can run your password through the KDF assuming you know the salt and iteration count.
Symmetric key cryptography requires secure key exchange. But in real world the 'key' itself is not exchanged right? Instead the password should be securely exchanged right?
This is quite a complex topic. In the case of GPG in symmetric mode, the key is not transferred by any means. Knowledge of the password is required to decrypt the encrypted data.
If you want to "share" the encrypted data with another entity, you usually make use of a hybrid cryptosystem. In the case of GPG, you will be encrypting the file without the
--symmetric flag. What this does is encrypt the data with a randomly generated symmetric key. This randomly generated key is then encrypted with the public key of your target (the recipient in GPG-speak). The encrypted symmetric key is appended with the encrypted blob and sent to your target. Your target will then decrypt the encrypted symmetric key with his private key and use the decrypted symmetric key to decrypt the encrypted blob.