``ColumnTransformer`` not honoring passthrough on `transform` with pandas when passthroughs not present in `fit` data

### Describe the bug

Passthrough columns appear to be dropped after running transform on the ColumnTranformer when the fit data did not have the same passthroughs. From my reading of the docstring, they should be included with the output of `transform` as per the docstring:

>       By specifying ``remainder='passthrough'``, all remaining columns that
>       were not specified in `transformers` will be automatically passed
>       through. This subset of columns is concatenated with the output of
>       the transformers.

Ideally when `remainder='passthrough'`, I should be able to pass in _any_ dataframe to transform provided it has the required columns to transform and nothing should get dropped regardless of whether or not the passthroughs were present in the fit data.

If this is intentional to avoid unexpected columns during the transform, then I suggest making this clear in the docstring.

### Steps/Code to Reproduce

```python
import pandas as pd
import sklearn
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder

# Make a mixed-type dataset including passthrough columns
df = pd.DataFrame(
    {
        "a": ["a", "a", "b", "c", "d"],
        "b": [0.577569, 0.751900, 0.722548, 0.675158, 0.676203],
        "c": ["a", "b", "b", "a", "c"],
        "d": [0.62, 0.75, 0.72, 0.67, 0.67],
        "e": [180.86, 182.70, 184.41, 188.70, 179.82],
        # add extra columns for passthrough
        "passthrough_1": [1, 2, 3, 4, 5],
        "passthrough_2": [0, 1, 0, 0, 1],
    }
)

ct = ColumnTransformer(
    transformers=[
        ("ord", OrdinalEncoder(), ["b", "d", "e"]),
        (
            "cat",
            OneHotEncoder(sparse_output=False, handle_unknown="ignore"),
            ["a", "c"],
        ),
    ],
    remainder="passthrough",
)
df_without = df[[x for x in df.columns if "passthrough" not in x]]

ct.set_output(transform="pandas")
ct.fit(df_without)
df_output = ct.transform(df)
assert all(x in df_output.columns for x in ["remainder__passthrough_1", "remainder__passthrough_2"])
```


### Expected Results

Passthrough columns should be present in the output of `transform`.  The reproducer code should run without raising an AssertionError on my test case.

### Actual Results

The code fails the assert since `passthrough_1` and `passthrough_2` are not present in the output data and an `AssertionError` is raised.

### Versions

```shell
System:
    python: 3.9.13 (main, Aug 25 2022, 18:29:29)  [Clang 12.0.0 ]
executable: /path/to/.venv/bin/python
   machine: macOS-10.16-x86_64-i386-64bit

Python dependencies:
      sklearn: 1.2.0
          pip: 22.3.1
   setuptools: 65.6.3
        numpy: 1.22.4
        scipy: 1.9.3
       Cython: None
       pandas: 1.5.2
   matplotlib: 3.6.3
       joblib: 1.2.0
threadpoolctl: 3.1.0

Built with OpenMP: True

threadpoolctl info:
       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /path/to/.venv/lib/python3.9/site-packages/numpy/.dylibs/libopenblas64_.0.dylib
        version: 0.3.18
threading_layer: pthreads
   architecture: Haswell
    num_threads: 6

       user_api: openmp
   internal_api: openmp
         prefix: libomp
       filepath: /path/to/.venv/lib/python3.9/site-packages/sklearn/.dylibs/libomp.dylib
        version: None
    num_threads: 12

       user_api: blas
   internal_api: openblas
         prefix: libopenblas
       filepath: /path/to/.venv/lib/python3.9/site-packages/scipy/.dylibs/libopenblas.0.dylib
        version: 0.3.18
threading_layer: pthreads
   architecture: Haswell
    num_threads: 6
```

COMMENT:
Thanks for responding so quick!

>  if more columns are provided to the potential underlying predictor, it will result in an error because the number of columns will be different.

I suppose I was thinking from a dataframe perspective where columns are already labeled, so extra columns in `transform` aren't an issue since it is easy enough to select and transform only what was seen during `fit` and then concat the rest at the end. But since this wouldn't work for unlabeled array columns so this restriction is reasonable for the sake of consistency between array and dataframe inputs.

> Happy to have a PR to improve the documentation in this regards.

I'll add a sentence or two to clarify.

Labels: Documentation