Nested Cross Validation using cross_validate does not show correct fitted model.

### Describe the bug

Hi all,

I am trying to do nested cross validation using for example `GridSearchCV` or `RandomizedSearchCV` together with `cross_validate`.
When using the cross_validate function together with the parameter setting: `return_estimator=True` , the results show the incorrect fitted estimator for each split. Without the correct fitted model shown for each split, this functionality is rather useless.

### Steps/Code to Reproduce

```python
from sklearn import datasets
from sklearn.model_selection import cross_validate, GridSearchCV, RandomizedSearchCV
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.dummy import DummyClassifier
from sklearn.pipeline import Pipeline

iris = datasets.load_iris()
parameters = [
    {"estimator":[SVC()], 'estimator__kernel':('linear', 'rbf'), 'estimator__C':[1, 10]},
    {"estimator":[DecisionTreeClassifier()]}
]
pipeline = Pipeline([("estimator", DummyClassifier())])
clf = GridSearchCV(pipeline, parameters, refit=True, )
cv_results = cross_validate(clf, iris.data, iris.target, cv=3, return_estimator=True)
print(cv_results)
```

### Expected Results

Since the `refit` parameter of `GridSearchCV` is set to `True` I would have expected that it would show the refitted model from `GridSearhCV` instead of the initial defined pipeline (`GridSearchCV(estimator=Pipeline(steps=[('estimator', DummyClassifier())]`).

### Actual Results

```python
{'fit_time': array([0.05277681, 0.04694057, 0.03554106]),
 'score_time': array([0.00047064, 0.00036621, 0.00040603]),
 'estimator': [
  GridSearchCV(estimator=Pipeline(steps=[('estimator', DummyClassifier())]),
               param_grid=[{'estimator': [SVC()], 'estimator__C': [1, 10],
                            'estimator__kernel': ('linear', 'rbf')},
                           {'estimator': [DecisionTreeClassifier()]}]),
  GridSearchCV(estimator=Pipeline(steps=[('estimator', DummyClassifier())]),
               param_grid=[{'estimator': [SVC()], 'estimator__C': [1, 10],
                            'estimator__kernel': ('linear', 'rbf')},
                           {'estimator': [DecisionTreeClassifier()]}]),
  GridSearchCV(estimator=Pipeline(steps=[('estimator', DummyClassifier())]),
               param_grid=[{'estimator': [SVC()], 'estimator__C': [1, 10],
                            'estimator__kernel': ('linear', 'rbf')},
                           {'estimator': [DecisionTreeClassifier()]}])],
 'test_score': array([1.  , 0.94, 0.98])}
```

### Versions

```shell
System:
    python: 3.9.16 (main, Feb 10 2023, 14:06:15)  [GCC 11.3.0]
executable: /home/jens/projects/fontainebleau/automl/.venv/bin/python
   machine: Linux-5.15.133.1-microsoft-standard-WSL2-x86_64-with-glibc2.35

Python dependencies:
      sklearn: 1.3.1
          pip: 23.0
   setuptools: 68.2.2
        numpy: 1.26.0
        scipy: 1.11.2
       Cython: None
       pandas: 2.1.1
   matplotlib: 3.8.0
       joblib: 1.3.2
threadpoolctl: 3.2.0

Built with OpenMP: True

threadpoolctl info:
       user_api: openmp
   internal_api: openmp
    num_threads: 8
         prefix: libgomp
       filepath: /home/jens/projects/fontainebleau/automl/.venv/lib/python3.9/site-packages/scikit_learn.libs/libgomp-a34b3233.so.1.0.0
        version: None

       user_api: blas
   internal_api: openblas
    num_threads: 8
         prefix: libopenblas
       filepath: /home/jens/projects/fontainebleau/automl/.venv/lib/python3.9/site-packages/numpy.libs/libopenblas64_p-r0-0cf96a72.3.23.dev.so
        version: 0.3.23.dev
threading_layer: pthreads
   architecture: SkylakeX

       user_api: blas
   internal_api: openblas
    num_threads: 8
         prefix: libopenblas
       filepath: /home/jens/projects/fontainebleau/automl/.venv/lib/python3.9/site-packages/scipy.libs/libopenblasp-r0-23e5df77.3.21.dev.so
        version: 0.3.21.dev
threading_layer: pthreads
   architecture: SkylakeX
```

COMMENT:
Not entirely sure to understand the problem here. What you observe the dictionary is the representation of the estimator and we always print the unfitted estimator. `return_estimator=True` allows to introspect the estimator afterwords such as:

```pyhon
for estimator in cv_results["estimator"]:
    print(estimator.best_estimator_)
```

```python
Pipeline(steps=[('estimator', SVC(C=1, kernel='linear'))])
Pipeline(steps=[('estimator', SVC(C=10, kernel='linear'))])
Pipeline(steps=[('estimator', SVC(C=10, kernel='linear'))])
```

Labels: Bug, Needs Triage