Never import matplotlib again!
. . .
mona_lisa_df = pd.DataFrame.from_records(hex_mona_lisa)
show_img(mona_lisa_df.style, pixel_size=8)
Pandas has some formatting tools that are a little bit like Excel's "Conditional Formatting" feature.
I used those formatting tools to color each cell to match the hex string in the cell.
For example, a cell with the value #639
would show up as a single pixel colored rebeccapurple
(get a box of tissues ready before you click that link).
Et voilà.
You have to run all the cells to get the images to show up. The easiest way to do that is to hit the button at the top that looks like a fast-forward button. It should say "Restart Kernel and Run All Cells" when you hover over it.