**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
result, there are more results to fetch). The default AWS batch size is 10, and configurable up to
        100. This function iteratively loads all results (or up to a given maximum).
        Each boto3 list_* function returns the results in a list with a different name. The key of this
        structure must be given to iterate over the results, e.g. "TransformJobSummaries" for
        list_transform_jobs().
        :param partial_func: boto3 function with arguments
        :param result_key: the result key to iterate over
        :param max_results: maximum number of results to return (None = infinite)
        :return: Results of the list_* request
        """
        sagemaker_max_results = 100  
        results: List[Dict] = []
        next_token = None
        while True:
            kwargs = {}
            if next_token is not None:
                kwargs["NextToken"] = next_token
            if max_results is None:
                kwargs["MaxResults"] = sagemaker_max_results
            else:
                kwargs["MaxResults"] = min(max_results - len(results), sagemaker_max_results)
            response = partial_func(**kwargs)
            self.log.debug("Fetched %s results.", len(response[result_key]))
            results.extend(response[result_key])
            if "NextToken" not in response or (max_results is not None and len(results) == max_results):
                
                return results
            else:
                next_token = response["NextToken"]