Bryce Harper last 3 seasons (2019 will be his age 26 season): .267/.391/.505/.897 with a 133 OPS+. On a 162 game basis, he averages 34 hr, 28 doubles, 1 triple
Over that same time span:
Mike Trout: .312/.447/.598/1.046 with 185 OPS+. Per 162 averages of 40 hr, 32 doubles, 4 triples
Mookie Betts: .308/.379/.538/.917 with 140 OPS+. Per 162 game averages of 32 hr, 49 doubles, 5 triples
Joey Votto (35): .311/.436/.519/.955 with 152 OPS+. Per 162 game averages of 27 hr, 34 doubles, 2 triples
Christian Yelich (27): .302/.382/.505/.887 with 139 OPS+. 162 game averages of 27 hr, 39 doubles, 5 triples
J.D. Martinez (31): .315/.385/.617/1.003 with 162 OPS+. 162 game averages of 46 hr, 41 doubles, 3 triples
Alex Bregman (25): .282/.366/.500/.866 with 137 OPS+. 162 game averages of 27 hr, 47 doubles, 5 triples
Jose Altuve (29): .334/.398/.512/.910 with 150 OPS+. 162 game averages of 22 hr, 40 doubles, 4 triples
Paul Goldschmidt (31): .295/.401/.528/.929 with 138 OPS+. 162 game averages of 32 hr, 36 doubles, 4 triples
Jose Ramirez (26): .300/.375/.533/.908 with 136 OPS+. 162 game averages of 28 hr, 50 doubles, 5 triples
Francisco Lindor (25): .283/.349/.488/.837 with 118 OPS+. 162 game averages of 30 hr, 40 doubles, 4 triples
Freddie Freeman (29): .306/.396/.549/.946 with 150 OPS+. 162 game averages of 32 hr, 46 doubles, 5 triples
Aaron Judge (27): .273/.398/.565/.963 with 153 OPS+. 162 game averages of 46 hr, 27 doubles, 2 triples
Giancarlo Stanton (29): .265/.351/.549/.900 with 140 OPS+. 162 game averages of 47 hr, 32 doubles, 1 triple
Nolan Arenado (28): .300/.370/.572/.942 with 131 OPS+. 162 game averages of 40 hr, 40 doubles, 6 triples
Manny Machado (26): .283/.340/.514/.855 with OPS+ of 128. 162 game averages of 37 hr, 37 doubles, 2 triples
Kris Bryant (27): .288/.391/.524/.915 with OPS+ of 138. 162 game averages of 33 hr, 41 doubles, 4 triples
Anthony Rizzo (29): .282/.384/.507/.892 with OPS+ of 132. 162 game averages of 31 hr, 27 doubles, 3 triples
This obviously cuts out Harpers MVP 2015, but seeing as that has so far been an outlier in his career and was 4 seasons ago, I don’t think that counts as cherry picking.
Harper has the fifth lowest OPS+ from this list, only ahead of Rizzo (133-132) and three incredible defensive players in Lindor, Machado, and Arenado (Machado incredible at 3rd, which is where he'll be in San Diego). Furthermore, Arenado beats Harper in every other stat listed with the exception of OBP, and Lindor’s OPS+ has gone from 106 to 116 to 131 over the past three seasons.
Harper has the second lowest average, only beating out Giancarlo by .002.
Harper has the fifth lowest OPS, ahead of only Bregman, Machado, Rizzo (by .005) and Lindor. Bregman’s OPS over past three seasons has gone from .791 to .827 to .926. Given his age and rapid improvement, it’s not unlikely that he will have a higher OPS than Harper for the next few seasons. Lindor’s has gone from .794 to .842 to .871. Still lower than Harpers by a considerable margin, so I don’t see him beating Harper in OPS over the next few seasons.
Harper averages 63 extra base hits per 162, tied with Joey Votto for the least from this list. J.D. average 90(!!!)
Per Fangraphs’ Offense, Harper was the 15th best offensive player in 2016, 13th in 2017, and 15th in 2018.
I think there is based on these stats a reasonable argument that Harper only barely cracks the top 15 hitters in baseball, and that doesn't take into account his defense, which Fangraphs has valued as a negative for every season since 2012.