### Apache Airflow Provider(s)

snowflake

### Versions of Apache Airflow Providers

apache-airflow-providers-snowflake==2.2.0 

### Apache Airflow version

2.2.0

### Operating System

Linux-5.4.141-67.229.amzn2.x86_64-x86_64-with-glibc2.31

### Deployment

Astronomer

### Deployment details

_No response_

### What happened

The `get_connection()` method is called twice in the SnowflakeHook, initializing the connection twice and slowing the hook down. See the following example logs on a single `run` of the SnowflakeHook:


<img width="1383" alt="Screen Shot 2021-11-09 at 9 59 26 PM" src="https://user-images.githubusercontent.com/30101670/141052877-648a5543-cf9a-4c16-82a6-02f6b62b47ba.png">



### What you expected to happen

The code is using the `get_connection` method on [line 271](https://github.com/apache/airflow/blob/main/airflow/providers/snowflake/hooks/snowflake.py#L271) and then calling the method again on [line 272](https://github.com/apache/airflow/blob/main/airflow/providers/snowflake/hooks/snowflake.py#L272)

### How to reproduce

Run the SnowflakeHook

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

airflow/providers/snowflake/hooks/snowflake.py
"warehouse": self.warehouse or warehouse,
            "region": self.region or region,
            "role": self.role or role,
            "authenticator": self.authenticator or authenticator,
            "session_parameters": self.session_parameters or session_parameters,
            
            "application": os.environ.get("AIRFLOW_SNOWFLAKE_PARTNER", "AIRFLOW"),
        }
        
        
        
        
        private_key_file = conn.extra_dejson.get('private_key_file')
        if private_key_file:
            with open(private_key_file, "rb") as key:
                passphrase = None
                if conn.password:
                    passphrase = conn.password.strip().encode()
                p_key = serialization.load_pem_private_key(
                    key.read(), password=passphrase, backend=default_backend()
                )
            pkb = p_key.private_bytes(
                encoding=serialization.Encoding.DER,
                format=serialization.PrivateFormat.PKCS8,
                encryption_algorithm=serialization.NoEncryption(),
            )
            conn_config['private_key'] = pkb
            conn_config.pop('password', None)
        return conn_config
    def get_uri(self) -> str: