**Apache Airflow version**: 2.0.2


**Kubernetes version (if you are using kubernetes)** (use `kubectl version`): NA

**Environment**: MWAA and Locally

- **Cloud provider or hardware configuration**: AWS
- **OS** (e.g. from /etc/os-release): NA
- **Kernel** (e.g. `uname -a`): NA
- **Install tools**: NA
- **Others**: NA

**What happened**:

When calling the SagemakerProcessingOperator sometimes get: "botocore.exceptions.ClientError: An error occurred (ThrottlingException)" due to excessive ListProcessingJobs operations.

**What you expected to happen**:

The job should have started without timing out. I believe one fix would be to use the `NameContains` functionality of boto3 [list_processing_jobs](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.list_processing_jobs) so you don't have to paginate as is occurring [here](https://github.com/apache/airflow/blob/main/airflow/providers/amazon/aws/hooks/sagemaker.py#L916). 

**How to reproduce it**:

If you incrementally create Sagemaker Processing jobs you will eventually see the Throttling as the pagination increases.

**Anything else we need to know**:

This looks like it is happening when the account already has a lot of former Sagemaker Processing jobs.
airflow/providers/amazon/aws/hooks/sagemaker.py
last_describe_job_call = time.monotonic()
        last_description = description
        while True:
            time.sleep(check_interval)
            sec += check_interval
            state, last_description, last_describe_job_call = self.describe_training_job_with_log(
                job_name,
                positions,
                stream_names,
                instance_count,
                state,
                last_description,
                last_describe_job_call,
            )
            if state == LogState.COMPLETE:
                break
            if max_ingestion_time and sec > max_ingestion_time:
                
                raise AirflowException(f'SageMaker job took more than {max_ingestion_time} seconds')
        if wait_for_completion:
            status = last_description['TrainingJobStatus']
            if status in failed_states:
                reason = last_description.get('FailureReason', '(No reason provided)')
                raise AirflowException(f'Error training {job_name}: {status} Reason: {reason}')
            billable_time = (
                last_description['TrainingEndTime'] - last_description['TrainingStartTime']
            ) * instance_count
            self.log.info('Billable seconds: %d', int(billable_time.total_seconds()) + 1)
    def list_training_jobs(