If the Game Object is a prefab...
...You can use Resources.Load("prefab path"). For this to work, you must create a Resources directory inside your Assets and put the prefab in there.
If it's a Game Object in the scene, you have several options.
You can just enter the path in the hierarchy and get the object that way.
However, not only is this slow, but you're essentially hard-coding the path. The moment that, or the object's name, changes, you're gonna have to change the code.
Unlike GameObject.Find(), this is not a static function. As such, you'll call it from the searching object's Transform: transform.Find().
I don't doubt this is a slow function as well, but it should be faster than the previous alternative, as it only searches inside the object's children. It also suffers from the same "hard-coding" problem as GameObject.Find().
Keep in mind that it's not recursive; it won't search inside its children's children.
Finally, if the Game Object you're searching for has a component specific to it, you can search for it with GetComponentInChildren<TheComponent>(). It will return the first occurrence of the component.
If you have several such children, you can make the "Component" part plural: GetComponentsInChildren<TheComponent>(). This will return an array containing every such component in the children.
You can then access their Game Objects by typing returnedComponent.gameObject.
However, I would recommend that you simply drag the object in the Inspector or make it a child of the searching object, unless you have a good reason not to.