Cache all objects at the start and detect the changes in the array (or the list).

To elaborate more, have a list like this:

    //This list hold all the gameobjects that are currently in the game.
    private List<GameObject> _existingObjects = new List<GameObject>();

And call this method at the beginning of the game, and every time a scene is loaded:

    //using System.Linq;

    public List<GameObject> FindNewGameObjects()
    {
        //Get all gameobjects.
        var allObjects = (FindObjectsOfType(typeof(GameObject)) as GameObject[]).ToList();

        //Substract the existing gameobjects from all gameobjects, so the result will be new ones.
        var result = allObjects.Except(existingObjects).ToList();

        //Update our list.
        _existingObjects = allObjects;

        //Return the result.
        return result;
    }

The return of the `FindNewGameObjects()` method will be the list of GameObjects that came with the loaded scene.

***Note:** The code is not tested.*