### 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
"""Override DbApiHook get_uri method for get_sqlalchemy_engine()"""
        conn_config = self._get_conn_params()
        uri = (
            'snowflake://{user}:{password}@{account}.{region}/{database}/{schema}'
            '?warehouse={warehouse}&role={role}&authenticator={authenticator}'
        )
        return uri.format(**conn_config)
    def get_conn(self) -> SnowflakeConnection:
        """Returns a snowflake.connection object"""
        conn_config = self._get_conn_params()
        conn = connector.connect(**conn_config)
        return conn
    def _get_aws_credentials(self) -> Tuple[Optional[Any], Optional[Any]]:
        """
        Returns aws_access_key_id, aws_secret_access_key
        from extra
        intended to be used by external import and export statements
        """
        if self.snowflake_conn_id:  
            connection_object = self.get_connection(self.snowflake_conn_id)  
            if 'aws_secret_access_key' in connection_object.extra_dejson:
                aws_access_key_id = connection_object.extra_dejson.get(
                    'aws_access_key_id'
                ) or connection_object.extra_dejson.get('aws_access_key_id')
                aws_secret_access_key = connection_object.extra_dejson.get(
                    'aws_secret_access_key'
                ) or connection_object.extra_dejson.get('aws_secret_access_key')
        return aws_access_key_id, aws_secret_access_key
    def set_autocommit(self, conn, autocommit: Any) -> None: