There is never a best solution. Only the solution which is best for your game and your personal workflow.
However, I would suggest a third solution.
- One scene only
- Store every map as a prefab (The Grid object with the tilemaps and all the objects on the map)
- When the player switches maps, destroy the old map and instantiate the new one.
Why only one scene? I am generally not a fan of creating levels as scenes. The reason is that you usually have a lot of stuff you want to have in every level, like the UI, gameplay-controllers and the player game-object. Keeping all that stuff consistent between all levels can be a real pain. And then you also have the problem of passing data between scenes which can be another source of headache. Sometimes you won't get around it. If you want to use baked GI, for example (which you usually won't use in a 2d game). But when I can, I try to keep all levels in the same scene.
Why maps as prefabs instead of one large map? Performance could be a concern, but with today's hardware and Unity's optimized tilemap rendering you really have to try hard to create a 2d tilemap which is so large that you get performance problems (Believe me, I tried). No, the reason for this is mostly convenience. When you can edit every map in isolation, then you don't have to worry about keeping gaps large enough that the player doesn't get to peek. And you don't need to move stuff around (probably breaking a few triggers) when it turns out your estimations were off. And then there is the problem that active game-objects on other maps still do their stuff when the player is on a different map, which might lead to side-effects you don't expect. It also makes it easier to collaborate between multiple map designers, because they can work on different maps in parallel without interfering with each other.