PERF: read_html: Reading one HTML file with multiple tables is much slower than loading each table separatly
- [x] closes #49929
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added [type annotations](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#type-hints) to new arguments/methods/functions.
- [x] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

```py
# setup from referenced issue
In [2]: %timeit combined = pd.read_html(StringIO(combined_html))
324 ms ± 1.79 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) # <- PR

In [3]: %timeit combined = pd.read_html(StringIO(combined_html)) # <- main
44.3 s ± 4.28 s per loop (mean ± std. dev. of 7 runs, 1 loop each)
```
Added whatsnew! Thanks @asishm 